package com.mall.coupon.common.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mall.common.core.annotation.Excel;
import com.mall.common.core.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 优惠券对象 cms_coupon
 *
 * @author guojie
 * @date 2025-01-13
 */
@Data
public class CmsCoupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 优惠券id */
    private Long id;

    /** 优惠券名称 */
    private String couponName;

    /** 发布数量 */
    private Long couponNum;

    /** 店铺id */
    private Long shopId;

    /** 优惠券类型 1通用 2指定商品 3指定分类 */
    private Long useType;

    /** 获取方式  */
    private Integer getType;

    /** 使用时间(0 - 固定 1 - 灵活) */
    private Long employTime;

    /** 领券开始几天内-》根据这个值设置优惠券结束时间 */
    private Long keepliveDay;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date useStartTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date userEndTime;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date activityStartTime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date activityEndTime;

    /** 优惠券类型 1满减券 2折扣券 3随机券 */
    private Long couponType;

    /** 每人限制次数 */
    private Long astrictFrequency;

    /** 活动状态（1进行中 2已失效 3已结束） */
    private Long activityStatus;

    /** 审核状态 1未审核 2审核通过 3未通过 */
    private Long auditStatus;

    /** 满 */
    private BigDecimal fullMoney;

    /** 减 */
    private BigDecimal clearMoney;

    /** 折扣 */
    private Long disNum;

    /** 折扣最大优惠 */
    private BigDecimal disMaxMoney;

    /** 随机最大值 */
    private BigDecimal randomMax;

    /** 优惠总金额 */
    private BigDecimal randomMoney;

    private List<Integer> skuIds;

}
